The assembler supports the full instruction set of the 68000, 68008, 68010 and 68020 processors. The assembler options to select the desired processor are: .68000 - 68000 16/24-bit data/address .68008 - 68008 8/22-bit data/address .68010 - 68010 16/24-bit data/address .68020 - 68020 32/32-bit data/address The assembler makes no distinction concerning the data and address bus widths of the underlying processor type. Instruc- tions not supported by the specific processor will report a warning. In addition, the floating point instruction set of the 68881 and 68882 floating point coprocessors are supported: .68881 - 68881 Floating Point Processor .68882 - 68882 Floating Point Processor The cycle counts for each instruction is processor dependent and is determined by the selected options. Because the number of instruction cycles for some instructions exceed the normal 99 cycle ASxxxx limit, the maximum has been increased to 999 for the 680xx processors. When the floating point processor in- structions are enabled the maximum is increased to 9999 as some of the packed floating point instructions exceed 2000 cycles. The cycle counts were extracted from the tables contained in the book "The Motorola MC68000 Microprocessor Family: Assembly Language, Interface Design, and System Design" by Thomas L. Harmon and Barbara Lawson (Prentice Hall, 1985), the "MC68020 32-Bit Microprocessor User's Manual" (Motorola Inc. 1984, 1985), and the "MC68881/MC68882 Floating Point Coprocessor User's Manual" Second Edition, (Motorola Inc. 1989).
AS68K ASSEMBLER SPECIFIC DIRECTIVES .setdp Directive Format: .setdp [base [,area]] The .setdp directive is used to inform the assembler of the current direct page region and the offset address within the selected area. The normal invocation methods are: .area DIRECT (PAG) .setdp or .setdp #,DIRECT AS68K has two paging regions, the first 32K bytes and the last 32K bytes of the 32-bit addressing space. The paged ad- dressing ranges are 0x00000000-0x00007FFF and 0xFFFF8000-0xFFFFFFFF. Define a different area for each of the regions: .area LOPAGE (PAG) .setdp 0x00000000,LOPAGE .area HIPAGE (PAG) .setdp 0xFFFF8000,HIPAGE These two regions must both be linked with a base address of 0x00000000 to position them so that instructions can use the 16-bit short forms to access these regions. Explicit direct page addressing is invoked by using the '*' prefix to a label or symbol. Automatic direct page addressing can be invoked by ena- bling the autodpcnst (Automatic Direct Page Constants) and/or the autodpsmbl (Automatic Direct Page Symbols) options. The assembler verifies that any local variable used in a direct variable reference is located in this area. Local vari- able and constant value direct access addresses are checked to be within the paging address ranges. The linker will check all external direct page relocations to verify that they are within the correct area. External global references are normally specified using the .globl directive. However the two paging areas of AS68K require additional information for the external references. This is done by the directives .lodpgbl and .hidpgbl. .lodpgbl Directive Format: .lodpgbl arg1, arg2, ... Where the arguments are labels or symbols with values that are in the 0x00000000-0x00007FFF direct page. If the low page area has not been specified then the arguments are defined as being in the current area. .hidpgbl Directive Format: .hidpgbl arg1, arg2, ... Were the arguments are labels or symbols with values that are in the 0xFFFF8000-0xFFFFFFFF direct page. If the high page area has not been specified then the arguments are defined as being in the current area. .qword Format: .qword arg1, arg2, ... .qword creates a 64-Bit integer which causes four words of storage to be generated for each argument. .flt16, .flt32, .flt64, .flt96, and .fltpk There are five supported floating point formats available in the AS68K assembler where arg1, arg2, ... represent one or more floating-point numbers. Format: .flt16 arg1, arg2, ... .flt16 causes one word of storage to be generated for each argument. Word: 16-Bit Floating Point Format: 15 14 7 6 0 S EEEEEEEE MMMMMMM Mantissa (7 bits) Exponent (8 bits) Biased Sign (1 bit) Format: .flt32 arg1, arg2, ... .flt32 causes two words of storage to be generated for each argument. Single: 32-Bit Floating Point: 31 30 23 22 0 S EEEEEEEE MMM.....MMM Mantissa (23 bits) Exponent (8 bits) Biased Sign (1 bit) Format: .flt64 arg1, arg2, ... .flt64 generates 4 words of storage for each argument. Double: 64-Bit Floating Point 63 62 52 51 0 S EEEEEEEEEEE MMM.....MMM Mantissa (52 bits) Exponent (11 bits) Biased Sign (1 bit) Format: .flt96 arg1, arg2, ... .flt96 generates 6 words of storage for each argument. Extended: 64-Bit Floating 95 94 80 79 64 63 62 0 S EEEEEEEEEEE 0000000 1 MMM.....MMM Sign (1 bit) Exponent (15 bits) Biased Padding (16 bits) Always 0 Integer (1 bit) Always 1 Mantissa (63 bits) Format: .fltpk arg1, arg2, ... .fltpk generates 6 words of storage for each argument as packed BCD (binary coded decimal) with a 17-digit mantissa and a 3-digit exponent. Packed: 17-Digit BCD Packed 95 94 93 92 91 80 79 68 67 0 SM SE YYYYY EEEEE xxxxx MMM.....MMM Sign Mantissa (1 bit) Sign Exponent (1 bit) Special Cases (2 bits) Exponent (3 digits) 000-999 Don't Care (12 bits) Mantissa (17 digits) The arguments are evaluated and the results are stored in the object module. Unlike the .word directive only the sign opera- tors (+) and (-) may be used in the evaluation of a floating-point argument. No arithmetic operations are allowed in the floating-point argument. A floating-point number is represented by a string of decimal digits. The string (which can be a single digit in length) may contain an optional decimal point and may be followed by an op- tional exponent indicator in the form of 'E' or 'e' followed by a signed decimal integer exponent. The number may not contain embedded blanks, tabs, or angle brackets and may not be an ex- pression. The AS68K assembler returns a value of the appropriate size and precision via one of the floating-point directives. The values returned may be truncated or rounded as selected by the '.enabl (fpt)' or '.dsabl (fpt)' respectively. Floating-point numbers are normally rounded. That is, when a floating-point number exceeds the limits of the field in which it is to be stored, the high-order bit of the unretained portion is added to the low-order bit of the retained portion. ^F - The Temporary Floating-Point Operator Format: ^F ^F is a unary operator for numeric control which allows you to specify an argument that is either a 1-word or 2-word floating-point number. For example, the following statement: A: MOVE.W #^F3.7,D0 creates an immediate 1-word floating-point number containing the value 3.7 formatted as shown in the .flt16 description in a pre- vious section. The following statement: B: MOVE.L #^F3.7,D0 creates an immediate 2-word floating-point number containing the value 3.7 formatted as shown in the .flt32 description in a pre- vious section. The ^F operator is only allowed in an instruction. .enabl and .dsabl Format: .enabl (arg1, arg2, ...) .dsabl (arg1, arg2, ...) where: arg1, arg2, ... represent one or more of the following options alt Allow Alternate Instructions fpt Floating-Point Truncation autodpcnst Automatic Direct Paging For Constants autodpsmbl Automatic Direct Paging For Symbols alt: controls whether the automatic translation of instructions to alternate instruction forms is enabled. The default is enabled. The following translations may be performed: MOVE [],An -> MOVEA [],An MOVE #,Dn -> MOVEQ #,Dn (#: -128 to +127) ADD Dn,An -> ADDA Dn,An ADD #,Dn -> ADDI #,Dn ADD #,Dn -> ADDQ #,Dn (#: 1 to 8) AND #,Dn -> ANDI #,Dn CMP [],An -> CMPA [],An CMP #,Dn -> CMPI #,Dn EOR #,[] -> EORI #,[] OR #,Dn -> ORI #,Dn SUB An,Dn -> SUBA An,Dn SUB #,Dn -> SUBI #,Dn SUB #,Dn -> SUBQ #,Dn (#: 1 to 8) fpt: controls whether floating-point truncation is active. Normal mode is fpt disabled and rounding is enabled. autodpcnst: controls whether instructions without length qualifies, .B, .W, .L, can automatically use short forms when the constants are within the ranges of 0x00000000-0x00007FFF (low paging region) or 0xFFFF8000-0xFFFFFFFF (high paging region) or are external globals. The paging regions must have been specified for this option to take effect. The default is enabled. autodpsmbl: controls whether instructions without length qualifies, .B, .W, .L, can automatically use short forms when the symbols are within the ranges of 0x00000000-0x00007FFF (low paging region) or 0xFFFF8000-0xFFFFFFFF (high paging region) or are external globals. The paging regions must have been speci- fied for this option to take effect. The default is enabled.
680XX REGISTER SET The following is a list of the 680xx registers used by AS68K. Eight 32-bit data registers provide data as bytes, words, and longs. Eight address registers provide addresses as words or longs. Other registers include the 32-bit program counter and the 8-bit status register. The control registers are not described in this document. Data Registers |- Long ---------------------------| |- Word-----------| |- Byte -| 31 16 15 8 7 0 |----------------|--------|--------| |- | | -| D0 |----------------|--------|--------| |- | | -| D1 |----------------|--------|--------| |- | | -| D2 |----------------|--------|--------| |- | | -| D3 |----------------|--------|--------| |- | | -| D4 |----------------|--------|--------| |- | | -| D5 |----------------|--------|--------| |- | | -| D6 |----------------|--------|--------| |- | | -| D7 |----------------|--------|--------| Address Registers |- Long --------------------------| |- Word----------| 31 16 15 0 |----------------|----------------| |- | -| A0 |----------------|----------------| |- | -| A1 |----------------|----------------| |- | -| A2 |----------------|----------------| |- | -| A3 |----------------|----------------| |- | -| A4 |----------------|----------------| |- | -| A5 |----------------|----------------| |- | -| A6 |----------------|----------------| |- User Stack Pointer -| |----------------|----------------| A7 / SP |- Supervisor Stack Pointer -| |----------------|----------------| 31 0 |--------------------------------| |- Program Counter | |--------------------------------| |--------|--------| Status Register| System | User | |--------|--------|
COMMON 680XX ADDRESSING MODES The addressing modes supported by all 680xx processors: Mode Register Syntax Addressing Mode ----- -------- -------- ---------------------------- 000 Reg # Dn Data Reg Dir 001 Reg # An Addr Reg Dir 010 Reg # (An) Addr Reg Ind 011 Reg # (An)+ Addr Reg Ind w/Postinc 100 Reg # -(An) Addr Reg Ind w/Predec 101 Reg # d16(An) Addr Reg Ind w/Disp or (d16,An) 110 Reg # d8(An,Rn) Addr Reg Ind w/Disp w/Index or (d8,An,Rn) 111 000 xxx Absolute Short or (xxx).W 111 001 xxxxx Absolute Long or (xxxxx).L 111 010 d16(PC) Prog Ctr Ind w/Disp or (d16,PC) 111 011 d8(PC,Rn) Prog Ctr Ind w/Disp w/Index or (d8,PC,Rn) 111 100 #xxx Immediate or #(xxx).W Short Immediate or #(xxx).L Long Immediate Where Rn is An or Dn Note that Rn supports Rn.W and Rn.L forms. The following short forms are also supported: @An <==> (An) @An+ <==> (An)+ -@An <==> -(An)
ADDITIONAL 68020 ADDRESSING MODES These additional addressing modes are supported only on the 68020 processor: Mode Register Syntax Addressing Mode ----- -------- -------- ---------------------------- 110 Reg # d16(An,Rn) Addr Reg Ind w/Disp w/Index or (d16,An,Rn) 110 Reg # d32(An,Rn) Addr Reg Ind w/Disp w/Index or (d32,An,Rn) 111 011 d16(PC,Rn) Prog Ctr Ind w/Disp w/Index or (d16,PC,Rn) 111 011 d32(PC,Rn) Prog Ctr Ind w/Disp w/Index or (d32,PC,Rn) 110 Reg # ([bd,An,Xn],od) 110 Reg # ([bd,An],Xn,od) 111 011 ([bd,PC,Xn],od) 111 011 ([bd,PC],Xn,od) Where: bd is an offset - optional: (bd).W or (bd).L An is an address register PC is the program counter Xn is An or Dn - optional: An.W/An.L/Dn.W/Dn.L a scaling factor may be applied to Xn with an optional suffix of *1, *2, *4, or *8 od is an offset - optional: (od).W or (od).L Rn is An or Dn Note that Rn supports Rn.W and Rn.L forms.
680XX INSTRUCTION SET The following tables list all the instructions found in the 68000, 68008, 68010, and 68020 microprocessors. The (.B,.W,.L) indicates an instruction has byte, word, and long forms. The brackets '[]' indicate one of the described addressing modes. Note that most instructions do not support all addressing modes, see the appropriate data sheets for allowed modes. For those instructions having multiple forms and there is a word form the assembler default is to use the word form. MOVE Instructions MOVE (.B,.W,.L) [],[] Source To Destination * MOVE (.W) CCR,[] From Condition Code Register MOVE (.W) [],CCR To Condition Code Register * MOVE (.W) SR,[] From Status Register MOVE (.W) [],SR To Status Register MOVE (.L) USP,An From User Stack Pointer MOVE (.L) An,USP To User Stack Pointer MOVEA (.W,.L) [],An To Address Register * MOVEC (.L) Rc,Rn From Control Register * MOVEC (.L) Rn,Rc To Control register MOVEM (.W,.L) Rlist,[] From Registers In List MOVEM (.W,.L) [],Rlist To Registers In List MOVEP (.W,.L) Dn,d(An) Data To Alternate Bytes MOVEP (.W,.L) d(An),Dn Data From Alternate Bytes MOVEQ (.L) #,[] Signed 8-Bit # To Destination * MOVES (.B,.W,.L) Rn,[] To Address Space * MOVES (.B,.W,.L) [],Rn From Address Space * -- 68010/68020 Instructions Double Operand ADD (.B,.W,.L) [],[] ADD Source To Destination ADDA (.W,.L) [],An ADDX (.B,.W,.L) Dn,Dn or -(An),-(An) AND (.B,.W,.L) [],[] AND Source With Destination CMP (.B,.W,.L) [],[] Destination - Source, Set CCs CMPA (.W,.L) [],An CMPM (.B,.W,.L) (An)+,(An)+ # DIVS (.W) [],Dn Signed Destination/Source # DIVU (.W) [],Dn UnSigned Destination/Source EOR (.B,.W,.L) Dn,[] XOR Source With Destination # MULS (.W) [],Dn Signed Source*Destination # MULU (.W) [],Dn UnSigned Source*Destination OR (.B,.W,.L) [],[] Source ORed With Destination SUB (.B,.W,.L) [],[] Subtract Source From Destination SUBA (.W,.L) [],An SUBX (.B,.W,.L) Dn,Dn or -(An),-(An) # -- 68020 Added .L Functionality Decimal Instructions ABCD (.B) Dn,Dn Add Decimal With X (Carry) ABCD (.B) -(An),-(An) NBCD (.B) [] Negate Decimal With X (Carry) SBCD (.B) Dn,Dn Subtract Decimal With X (Carry) SBCD (.B) -(An),-(An) Immediate Instructions ADDI (.B,.W,.L) #,[] ADD Immediate To Destination ADDQ (.B,.W,.L) #,[] ADD 1-8 To Destination ANDI (.B,.W,.L) #,[] AND Immediate To Destination ANDI (.B) #,CCR AND Immediate To Condition Codes ANDI (.B) #,SR AND Immediate To Status Register # CMPI (.B,.W,.L) #,[] CMP Immediate With Destination EORI (.B,.W,.L) #,[] XOR Immediate With Destination EORI (.B) #,CCR XOR Immediate To Condition Codes EORI (.B) #,SR XOR Immediate To Status Register ORI (.B,.W,.L) #,[] OR Immediate With Destination ORI (.B) #,CCR OR Immediate To Condition Codes ORI (.B) #,SR OR Immediate To Status Register SUBI (.B,.W,.L) #,[] SUB Immediate From Destination SUBQ (.B,.W,.L) #,[] SUB 1-8 From Destination # -- 68020 Added PC Relative Addressing Single Operand CLR (.B,.W,.L) [] Clear Destination NEG (.B,.W,.L) [] Negate Destination NEGX (.B,.W,.L) [] Negate Dest. With X (Carry) NOT (.B,.W,.L) [] Complement Destination # TST (.B,.W,.L) [] Test Destination # -- 68020 Added PC Relative Addressing Shift And Rotate ASR (.B,.W,.L) [] Arithmetic Shift Right ASL (.B,.W,.L) [] Arithmetic Shift Left LSR (.B,.W,.L) [] Logical Shift Right LSL (.B,.W,.L) [] Logical Shift Left ROR (.B,.W,.L) [] Rotate Right ROL (.B,.W,.L) [] Rotate Left ROXR (.B,.W,.L) [] Rotate Right With X (Carry) ROXL (.B,.W,.L) [] Rotate Left With X (Carry) SWAB (.W) [] Swap Words AS.5.7 Bit Manipulation BCHG (.B,.L) Dn,[] Test Bit And Change BCHG (.B,.L) #,[] BCLR (.B,.L) Dn,[] Test A Bit And Clear BCLR (.B,.L) #,[] BSET (.B,.L) Dn,[] Test A Bit And Set BSET (.B,.L) #,[] BTST (.B,.L) Dn,[] Test A Bit BTST (.B,.L) #,[] Scc (.B) [] Set According To Condition TAS (.B) [] Test And Set An Operand Branch On Condition Instructions The short (.S) branch instructions have a range of -126 to +129 bytes relative to the address of the branch instruction. The word (.W) branch instructions have a range of -32,766 to +32,769 bytes relative to the address of the branch instruction. The instruction argument is normally an address. BCC label Carry Clear BLS label Lower Or Same BCS label Carry Set BLT label Less Than BEQ label Equal BMI label Minus BGE label Greater Or Equal BNE label Not Equal BGT label Greater Than BPL label Plus BHI label Higher BVC label Overflow Clear BLE label Less Or Equal BVS label Overflow Set BRA label Branch Always BSR label Branch To Subroutine The 68020 processor supports long (.L) branches to any location in the 32-bit addressing range. Test, Decrement, And Branch Instructions The Test, Decrement, and Branch instructions support a range of -32,766 to +32,769 bytes relative to the address of the branch instruction. The instruction branch location is normally an address. DBCC Dn,label Carry Clear DBLS Dn,label Lower Or Same DBCS Dn,label Carry Set DBLT Dn,label Less Than DBEQ Dn,label Equal DBMI Dn,label Minus DBF Dn,label False DBNE Dn,label Not Equal DBGE Dn,label Greater Or Equal DBPL Dn,label Plus DBGT Dn,label Greater Than DBT Dn,label True DBHI Dn,label Higher DBVC Dn,label Overflow Clear DBLE Dn,label Less Or Equal DBVS Dn,label Overflow Set Set According To Condition The Condition is tested and if True the addressed byte is set to all 1s else the addressed byte is set to all 0s. SCC (.B) [] Carry Clear SLS (.B) [] Lower Or Same SCS (.B) [] Carry Set SLT (.B) [] Less Than SEQ (.B) [] Equal SMI (.B) [] Minus SF (.B) [] False SNE (.B) [] Not Equal SGE (.B) [] Greater Or Equal SPL (.B) [] Plus SGT (.B) [] Greater Than ST (.B) [] True SHI (.B) [] Higher SVC (.B) [] Overflow Clear SLE (.B) [] Less Or Equal SVS (.B) [] Overflow Set AS.5.11 Bit Field Instructions {} designates {offset:width} ** BFCHG [] {} Test Bit Field And Change ** BFCLR [] {} Test Bit Field And Clear ** BFEXTS [] {},Dn Extract Bit Field Signed ** BFEXTU [] {},Dn Extract Bit Field Unsigned ** BFFFO [] {},Dn Find First One In Bit Field ** BFINS Dn,[] {} Insert Bit Field ** BFSET [] {} Set Bit Field ** BFTST [] {} Test Bit Field ** -- 68020 Instruction Trap On Condition The Condition is tested and if True the processor initiates exception processing. ** TRAPCC (.W,.L) (#) Carry Clear ** TRAPLS (.W,.L) (#) Lower Or Same ** TRAPCS (.W,.L) (#) Carry Set ** TRAPLT (.W,.L) (#) Less Than ** TRAPEQ (.W,.L) (#) Equal ** TRAPMI (.W,.L) (#) Minus ** TRAPF (.W,.L) (#) False ** TRAPNE (.W,.L) (#) Not Equal ** TRAPGE (.W,.L) (#) Greater Or Equal ** TRAPPL (.W,.L) (#) Plus ** TRAPGT (.W,.L) (#) Greater Than ** TRAPT (.W,.L) (#) True ** TRAPHI (.W,.L) (#) Higher ** TRAPVC (.W,.L) (#) Overflow Clear ** TRAPLE (.W,.L) (#) Less Or Equal ** TRAPVS (.W,.L) (#) Overflow Set ** -- 68020 Instruction, .W and .L require # Other Instructions JMP [] Jump To Location JSR [] Jump To Subroutine LEA (.L) [],An Load Effective Address PEA (.L) [] Push Effective Address ** BKPT # Program Break Point ** CALLM #,[] Call Module ** CAS Du,Dc,[] Compare And Swap With Operand ** CAS2 Dc1:Dc2,Du1:Du2,(Rn1):(Rn2) # CHK (.W) [],Dn Check Register Against Bounds ** CHK2 (.B,.W,.L) [],Rn Check Register Against Bounds ** CMP2 (.B,.W,.L) [],Rn Compare Register Against Bounds # DIVS.L [],Dr:Dq Sgnd Division 64/32 -> 32r:32q # DIVSL.L [],Dr:Dq Sgnd Division 32/32 -> 32r:32q # DIVU.L [],Dr:Dq UnSngd Division 64/32 -> 32r:32q # DIVUL.L [],Dr:Dq UnSngd Division 32/32 -> 32r:32q EXG (.L) Rn,Rn Exchange Registers EXT (.W,.L) Dn Sign Extend Byte Or Word ** EXTB (.L) Dn Sign Extend Byte To Long ILLEGAL Illegal Instruction Exception # LINK An,# Link And Allocate # MULS.L [],Dl Signed Multiply 32*32 -> 32 # MULS.L [],Dh:Dl Signed Multiply 32*32 -> 64 # MULU.L [],Dl Unsigned Multiply 32*32 -> 32 # MULU.L [],Dh:Dl Unsigned Multiply 32*32 -> 64 NOP No Operation ** PACK Dx,Dy,# Pack To BCD -(ax),-(ay),# RESET Reset External Devices * RTD # Return And Deallocate Parameters * RTE Return From Exception ** RTM Rn Return From Module RTR Return / Restore Condition Codes RTS Return From Subroutine STOP # Load Status Register And Stop TRAP # Trap To Vector (0-15) TRAPV Trap On Overflow (If Enabled) UNLK An Load Stack Pointer, Pop Stack * -- 68010/68020 Instruction # -- 68020 Added Functionality ** -- 68020 Instruction
68881/68882 INSTRUCTION SET The floating point instruction set for the 68881 and 68882 coprocessors is summarized in this section. The 68882 provides an increased level of performance over the 68881 and is fully compatible and interchangeable. The coprocessor selection options: .68881 - 68881 Floating Point Processor .68882 - 68882 Floating Point Processor enable the assembly of the floating point instructions and select the differing execution clock cycles. The cycle counts are the worst case values and assume absolutely no overlap with the main processor or the simultaneous execution of floating in- structions by the 68882. The following sections describe the floating point instruc- tions separated into these instruction groups: Data Movement Dyadic Operations Monadic Operations Program Control System Control The tables contain the operand syntax and the operand format which is summarized here: FPm A floating point register (FP0-FP7) FPn A floating point register (FP0-FP7) FPcr A floating point control register FPc Register For Cosine Result FPs Register For Sine Result [] Processor addressing mode {Dn} Dynamic packing factor {#k} Static packing factor #ccc ROM constant <label> Branching label <list> Data or Control register list B Byte W Word L Long S Single D Double X Extended P Packed Data Movement Instructions Instruction OP Syntax OP Format ----------- --------- --------- FMOVE FPm,FPn X [],FPn B,W,L,S,D,X,P FPm,[] B,W,L,S,D,X FPm,[] {#k} P FPm,[] {Dn} P [],FPcr L FPcr,[] L FMOVECR #ccc,FPn X FMOVEM [],<list> L,X [],Dn X <list>,[] L,X Dn,[] X Dyadic Instructions Instruction OP Syntax OP Format ----------- --------- --------- F(dop) [],FPn B,W,L,S,D,X,P FPm,FPn X ----------------------------------------- FADD Add FCMP Compare FDIV Divide FMOD Modulo Remainder FMUL Multiply FREM IEEE Remainder FSCALE Scale Exponent FSGLDIV Single Precision Divide FSGLMUL Single Precision Multiply FSUB Subtract Monadic Instructions Instruction OP Syntax OP Format ----------- --------- --------- FSINCOS [],FPc:FPs B,W,L,S,D,X,P FPm,FPc:FPs X F(mop) [],FPn B,W,L,S,D,X,P FPm,FPn X FPn X ----------------------------------------- FABS Absolute Value FACOS Arc Cosine FASIN Arc Sine FATAN Arc Tangent FATANH Hyberbolic Arc Tangent FCOS Cosine FCOSH Hyperbolic Cosine FETOX e^x FETOXM1 e^x - 1 FGETEXP Extract Exponent FGETMAN Extract Mantissa FINT Extract Integer Part FINTRZ Extract Integer Part Rounded-to-Zero FLOGN ln(x) FLOGNP1 ln(x+1) FLOG10 ln10(x) FLOG2 ln2(x) FNEG Negate FSIN Sine FSINH Hyperbolic Sine FTENTOX 10^x FTWOTOX 2^x Program Control Instructions Instruction OP Syntax OP Format ----------- --------- --------- * FBcc <label> W,L * FDBcc Dn,<label> W FNOP - - * FScc [] B FTST [] B,W,L,S,D,X,P FTST FPn X * -- See the Conditional Test Mnemonics System Control Instructions Instruction OP Syntax OP Format ----------- --------- --------- FRESTORE [] - FSAVE [] - * FTRAPcc - - * FTRAPcc #xxx W,L * -- See the Conditional Test Mnemonics Condition Test Mnemonics MNE IEEE-NonAware Tests --- ----------------------- EQ Equal NE Not Equal GT Greater Than NGT Not (Greater Than) GE Greater Than or Equal NGE Not (Greater Than or Equal) LT Less Than NLT Not (Less Than) LE Less Than or Equal NLE Not (Less Than or Equal) GL Greater or Less Than NGL Not (Greater Than or Less) GLE Greater, Less, or Equal NGLE Not (Greater,Less, or Equal) MNE IEEE-Aware Tests --- ------------------------- EQ Equal NE Not Equal OGT Ordered Greater Than ULE Unordered or Less Than or Equal OGE Ordered Greater Than or Equal ULT Unordered or Less Than OLT Ordered Less Than UGE Unordered or Greater Than or Equal OLE Ordered Less Than or Equal UGT Unordered or Greater Than OGL Ordered Greater Than or Less Than UEQ Unordered or Equal OR Ordered UN Unordered MNE Miscellaneous Tests --- ------------------------- F Always False T Always True SF Signaling Always False ST Signaling Always True SEQ Signaling Equal SNE Signaling Not Equal
... Exit the ASxxxx Documentation